module State.IState;
private import Graphics.IGraphics;

interface IState{
	public IState action();
	public IState draw(IGraphics g);
	public IState call(IState caller);
	
	public bool onMouseMove( int x , int y , int button);
	public bool onMouseDown( int x , int y , int button);
	public bool onMouseUp( int x , int y , int button);
	public bool onMouseWheel( int x , int y , int delta);
	public bool onKeyDown( int keyCode );
	public bool onKeyUp( int keyCode );
	
	public bool onJoyAxis( int deviceId , int axis , int delta );
	public bool onJoyButtonDown( int deviceId , int ax );
	public bool onJoyButtonUp( int deviceId , int ax );
} //


public class BasicState : IState{
	public IState action(){return this;}
	public IState draw(IGraphics g){return this;}
	public IState call(IState caller){return this;}
	
	public bool onMouseMove( int x , int y , int button){return true;}
	public bool onMouseDown( int x , int y , int button){return true;}
	public bool onMouseUp( int x , int y , int button){return true;}
	public bool onMouseWheel( int x , int y , int delta){return true;}
	public bool onKeyDown( int keyCode ){return true;}
	public bool onKeyUp( int keyCode ){return true;}

	public bool onJoyAxis( int deviceId , int axis , int delta ){return true;}
	public bool onJoyButtonDown( int deviceId , int button ){return true;}
	public bool onJoyButtonUp( int deviceId , int button ){return true;}
} //